在nginx配置文件中,location主要有这几种形式:
正则匹配 location ~ /abc { }
不区分大小写的正则匹配 location ~* /abc { }
匹配路径的前缀,如果找到停止搜索 location ^~ /abc { }
精确匹配 location = /abc { }
5.普通路径前缀匹配 location /abc { }
先说优先级
4 > 3 > 2 > 1 > 5
再来解释一下各个格式
|
|
再来分析一下A-H配置的执行顺序。
- 下面2个配置同时存在时
|
|
此时A生效,因为=/优先级高于/
- 下面3个配置同时存在时
|
|
当访问的url为/documents/abc/1.html,此时CC生效,首先CB优先级高于C,而CC更优先于CB
- 下面4个配置同时存在时
|
|
当访问的链接为/images/abc/123.jpg时,此时D生效。虽然4个规则都能匹配到,但^~优先级是最高的。
若^~不存在时,H优先,因为~/images/ > /images/
而/images/和/images/abc同时存在时,/images/abc优先级更高,因为后者更加精准
- 下面两个配置同时存在时
|
|
当访问的链接为/images/abc/123.jpg时,E生效。因为上面的规则更加精准。